#print "hello world!"

.section .data
	output:
	.ascii "hello world\n"

.section .text

.globl _start
_start:
	movl $4, %eax
	movl $1, %ebx
	movl $output, %ecx
	movl $12, %edx
	int $0x80
	movl $1, %eax
	movl $0, %ebx
	int $0x80

#解释如下
#.asscii声明使用ASCII字符声明一个文本字符串。字符串元素被预定义并且放在内存中，其起始内存位置由标签output指示。
#.text为声明的指令码段，_start为起始标签,start是链接器默认的起始代码

#第一步，用as汇编器将源文件编译成二进制代码:
#as --32 -o hellowd.o hellowd.s		#--32表示i386平台
#第二步，用ld连接器将hellowd.o链接成可执行文件：
#ld -m elf_i386 -o a.out hellowd.o  #-m elf_i386表示生成32位elf格式文件

#第一个系统调用为write系统调用
#eax包含系统调用值，write是4
#ebx包含要写入的文件描述符，1表示标准输出
#ecx包含字符串的开头
#edx包含字符串的长度
#第二个系统调用，1表示退出函数，返回值为0

#将代码入口标签_start改成main就可以用gcc来编译
